package com.tp2.etna.distribucion2.service;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.tp2.etna.distribucion2.dao.HojaRutaDist2DAO;
import com.tp2.etna.distribucion2.dao.RecursoDAO;
import com.tp2.etna.distribucion2.dao.TransporteDAO;
import com.tp2.etna.distribucion2.modelo.HojaRuta;
import com.tp2.etna.distribucion2.modelo.Recurso;
import com.tp2.etna.distribucion2.modelo.Transporte;

@Service
public class ActualizarInfTransporteHojaRutaImpl implements
		ActualizarInfTransporteHojaRuta {

	@Autowired
	private HojaRutaDist2DAO hojaRutaDist2DAO;
	@Autowired
	private TransporteDAO transporteDAO;
	@Autowired
	private RecursoDAO recursoDAO;

	@Override
	public List<HojaRuta> obtenerHojaRutaPendientes(Date fecha) {
		
		return hojaRutaDist2DAO.getHojaRutas(fecha != null ? new java.sql.Date(fecha.getTime()) : null);
	}

	@Override
	public HojaRuta obtenerHojaRutaDetalle(int id) {
		return hojaRutaDist2DAO.getHojaRutaById(id);
	}

	@Override
	public List<Transporte> obtenerTransporteDisponible(int HojaRutaid) {
		return transporteDAO.obtenerTransporteDisponible(HojaRutaid);
	}
	
	@Override
	public List<Recurso> obtenerTransportistasDisponibles(int HojaRutaid) {
		return recursoDAO.obtenerTransportistas(HojaRutaid);
	}
	
	@Override
	public List<Recurso> obtenerCopilotosDisponibles(int HojaRutaid) {
		return recursoDAO.obtenerCopilotos(HojaRutaid);
	}
	
	@Override
	public List<Recurso> obtenerAsistentesDisponibles(int HojaRutaid) {
		return recursoDAO.obtenerAsistentes(HojaRutaid);
	}

	@Override
	public boolean actualizarTransporteHojaRura(Integer idHojaRuta
													,Integer idTransporte
													, Integer idTransportista
													, Integer idCopiloto
													, Integer idAsistente) {
		boolean asignarTransporte = transporteDAO.asignarTransporteHojaRuta(idHojaRuta, idTransporte);
		boolean asignarTransportista = recursoDAO.asignarTransportistaHojaRuta(idHojaRuta, idTransportista);
		boolean asignarCopiloto = recursoDAO.asignarCopilotoHojaRuta(idHojaRuta, idCopiloto);
		boolean asignarAsistente = true;
		if(idAsistente != null)
			asignarAsistente = recursoDAO.asignarAsistenteHojaRuta(idHojaRuta, idAsistente);
		if(asignarTransporte && asignarTransportista
				&& asignarCopiloto && asignarAsistente)
			return true;
		else
			return false;
	}
	

}
